package com.xlf.controller.admin;


import com.xlf.dto.OrderScreenDTO;

import com.xlf.service.OrderService;
import com.xlf.utils.ResponseResult;
import com.xlf.vo.AddOrderVO;
import com.xlf.vo.OrderVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * 后台管理员订单管理控制层
 */
@Tag(name = "后台管理员订单管理")
@RestController
@RequestMapping("/order")
public class OrderController {

    @Resource
    OrderService orderService;

    /**
     * 条件查询订单，支持分页、订单状态、支付状态、下单时间区间等搜索
     * @param orderScreenDTO    订单显示DTO对象
     * @return                  分页查询订单
     */
    @Operation(summary = "条件查询订单数据", description = "根据多种条件分页查询分类数据，支持时间区间和ID筛选")
    @PostMapping("/getOrderPage")
    public ResponseResult getOrderPage(@RequestBody OrderScreenDTO orderScreenDTO){
        return ResponseResult.success("获取订单分页成功",orderService.getOrderPage(orderScreenDTO));
    }

    /**
     * 根据id/id列表删除订单
     * @param id    订单列表，可以只有一个
     * @return      删除结果
     */
    @Operation(summary = "根据id/id列表删除订单")
    @DeleteMapping("/delete")
    public ResponseResult deleteOrder(@RequestBody List<Long> id){
        orderService.removeByIds(id);
        return ResponseResult.success("删除成功");
    }

//    /**
//     * 添加订单
//     * @param addOrderVO
//     * @return
//     */
//    @PostMapping("/addOrder")
//    public ResponseResult addOrder(@RequestBody AddOrderVO addOrderVO){
//        return ResponseResult.success("下单成功",orderService.addOrder(addOrderVO));
//    }

    /**
     * 可视化订单，获取所有订单数据
     * @return  返回所有订单数据
     */
    @Operation(summary = "可视化订单，获取所有订单数据")
    @GetMapping("/getHomeOrder")
    public ResponseResult getHomeOrder(){
        List<OrderVO> allOrder = orderService.getAllOrder();
        return ResponseResult.success("获取所有订单",allOrder);
    }
}
